package io.renren.common.logback;

import java.util.Date;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.boolex.EvaluationException;
import ch.qos.logback.core.boolex.EventEvaluatorBase;

/**
 * @Title: CounterBasedEvaluator.java
 * @Package: cn.etcp.tradecenter.logback.evaluate
 * @Description: 用于判断异常邮件是否发送 配置于appender中 异步不用考虑并发争用
 * @author: xuzg
 * @date: 2015年9月16日 下午6:47:56
 * @version: V1.0
 */
public class CounterEvaluator extends EventEvaluatorBase<ILoggingEvent> {

	/** 40个error发一次邮件 */
    private static int limit        = 10;

    /** 当前积攒了多少error */
    private int        counter      = 0;

    /** 最后一次发送的时间 */
    private Date       lastSendTime = new Date();

    /** 间隔  默认10分钟*/
    private final Long INTERVAL     = 1000 * 60 * 10L;

    /** 
     * @see ch.qos.logback.core.boolex.EventEvaluator#evaluate(java.lang.Object)
     */
    @Override
    public boolean evaluate(ILoggingEvent event) throws EvaluationException {
//        counter++;
//        if (counter >= limit || ((new Date().getTime() - lastSendTime.getTime()) > INTERVAL)) {
//            counter = 0;
//            lastSendTime = new Date();
//            return true;
//        } else {
//            return false;
//        }
    	return true;
    }
}
